Kinesis Data Firehoseの送信先エラーログをAmazon SNS経由で通知する

Kinesis Data Firehoseの送信先エラーログをAmazon SNS経由で通知する

Kinesis Data Firehoseの送信先エラーログをCloudWatch Logs→CloudWatch Alarm→Amazon SNSで通知してみた
Clock Icon2023.04.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、洲崎です。
Kinesis Data Firehoseの送信先エラーログをAmazon SNS経由で通知してみたので共有します。

Kinesis Data Firehoseで送信先エラーログが発生したら検知したい

Amazon Kinesis Data Firehoseは、CloudWatch Logsを使用してデータ配信失敗時にエラーログを記録することができます。
ログストリームはS3だとDestinationDeliveryの中に保存されます。
また、エラーログはKinesis Data Firehoseのコンソールからも内容を確認することができます。

今回はこのエラーログが発生したタイミングで検知を行いたいので、CloudWatch Logs、CloudWatch Alarm、Amazon SNSを利用して通知する仕組みを実装しました。

構成図

検証した構成図はこちらです。(Amazon ConnectやS3は今回あまり関わるところではないです)

Kinesis Data Firehoseで発生したエラーログがCloudWatch Logsに溜まり、それをメトリクスフィルターでメトリクスとして可視化します。そのメトリクスに対してアラームをセットしてSNSを経由して通知します。

やってみる

メトリクスフィルターの作成

Kinesis Data Firehoseで作成されているCloudWatch Logsに飛び、「メトリクスフィルター」で「メトリクスフィルターの作成」をクリックします。

Kinesis Data Firehoseの主なエラーは"errorCode"で表示される為、フィルターパターンはerrorで作成します。
「パターンをテスト」は実際にフィルターパターンで検知するかのテストなので、念の為"errorCode"でテストして結果が出ることを確認します。

フィルター名、メトリクス名前空間、メトリクス名を任意の値で設定します。
メトリクス値は1で、デフォルト値は0として、メトリクスフィルターを作成します。

メトリクスフィルターが作成できたら、チェックを入れて「アラームを作成」をクリックします。

アラームの内容は統計を合計、期間を1分としました。
条件は静的0よりも大きいとし、errorが1件でもあがればアラーム状態になる形で設定します。

アクションの設定で、「新しいトピックの作成」、「新規トピック名」、「通知を受け取るEメールエンドポイント」を入力します。
トピックの作成をクリックして、その他は入力せず次にいきます。
トピックの作成をクリックしたタイミングでEメールにAWSから確認のメールが届くのでConfirm subscriptionします。

アラーム名とアラームが発生した時の通知の内容を記載します。

これで設定完了です。

テスト

CloudWatch Logsの対象のログストリームのDestinationDeliveryを開きます。
アクションから「ログイベントの作成」をクリックします。

ログイベントで「error」と入力します。

1分ほど待つと、登録したEメールアドレスにアラームの内容が届きました!

CloudWatch Alarmにもアラーム状態で上がっている確認がとれました。

最後に

Kinesis Data Firehoseの送信先エラーログが上がったらCloudWatch Logs→CloudWatch Alarm→Amazon SNSで通知を行うことができました。
もしエラーが起きたタイミングで検知をしたいなどあれば、参考にしてみてください。

ではまた!コンサルティング部の洲崎でした。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.